1. Field of the Invention
This invention relates in general to the field of network communications and more particularly to a method and a type of Tx and Rx ends for data synchronization.
2. Description of the Related Art
In a distributed system, for security or fast access purpose, a data copy is usually maintained in each sub-system. This requires that data generated at the data source be synchronized to each sub-system in time.
There are two data synchronization modes: bulk data synchronization and real-time data synchronization. Bulk data synchronization is performed usually after new sub-systems are added to the distributed system or sub-systems are rebooted, where the data source synchronizes the existing data to the newly-added or rebooted sub-systems in bulk. Real-time data synchronization is performed usually when the existing data changes, where the data source synchronizes the data changes to each sub-system. Bulk data is usually transmitted through one or more unicast bulk data channels, while real-time data is usually transmitted through a real-time multicast data channel.
In actual applications, real-time data may also need to be transmitted during bulk data transfers. For data to be correctly synchronized to each sub-system, you must guarantee that data is received by each sub-system in the same order it was sent from the data source. For example, when the data source synchronizes bulk data increments as well as real-time data deletion to a sub-system (Rx end), the sub-system must receive the data in the same order it was sent from the source. Otherwise, some of the data deletion may fail to be synchronized to the sub-system.
In the existing technologies, only a multicast real-time data channel is present between the data source and stable sub-systems. After a new sub-system is added to the distributed system or a sub-system is rebooted, a unicast bulk data channel will be first established between the new or rebooted sub-system and the data source, and data will be synchronized to the sub-system in bulk through the bulk data channel. If real-time data is generated during the bulk data transfer, the data source, while transmitting the real-time data to stable sub-systems through the multicast real-time data channel, transmits the real-time data to the new or rebooted sub-system through the unicast bulk data channel as well. As shown in FIG. 1, sub-system N is a newly-added sub-system. During the bulk data transfer, real-time data is also transmitted through the unicast bulk data channel to sub-system N. After the bulk data transfer is complete, the newly-added or rebooted sub-system switches to the multicast real-time data channel.
However, because the data source and sub-system are unlikely to reach an agreement on when the bulk data transfer will end, it is possible that the order in which the sub-system receives data is inconsistent with the order in which the data source sends data. As a result, the sub-system may fail to receive some of the data, that is, data is not completely synchronized between the data source and the sub-system. For the data source and sub-systems to reach agreements on the ending time of bulk data transfers, complicated system support is required.